/********************************************************************************
 * Project Name		[JavaEE_Web]
 * File Name     	[JSP08.java]
 * Creation Date 	[2015-01-01]
 * 
 * Copyright© ge.y.yang@gmail.com All Rights Reserved
 * 
 * Work hard, play harder, think big and keep fit
 ********************************************************************************/
package _notes.jsp;

/**
 * JSP错误处理页面配置以及中文乱码
 * 
 * @author 不落的太阳(Sean Yang aka ShortPeace)
 * @version 1.0
 * @since jdk 1.8
 * 
 */
public final class JSP08 {

	public void handleError() {
		/**
		 * JSP处理错误页面的方式<br/>
		 * 
		 * 方式1: 使用error page<br/>
		 * <code>
		 * <%@page errorPage="/error.jsp" %> 
		 * </code><br/>
		 * 在响应error.jsp时, JSP引擎使用的请求转发的方式<br/>
		 * 
		 * 一般不允许用户直接访问错误页面<br/>
		 * 1. 将error.jsp放在WEB-INF目录下<br/>
		 * 2. 通过转发来访问<br/>
		 * <code>
		 * <%@page errorPage="/WEB-INF/error.jsp"%>	
		 * </code><br/>
		 * 
		 * 方式2: 在web.xml中配置<br/>
		 * <code>
		 * <error-page>
		 *     <error-code>404</error-code>										<!-- 指定出错的代码 -->
		 *     <location>/WEB-INF/error.jsp</location>							<!-- 指定响应页面的位置 -->
		 * </error-page>
		 * 
		 * <error-page>
		 *     <exception-type>java.lang.ArithmeticException</exception-type>	<!-- 指定异常的类型 -->
		 *     <location>/WEB-INF/error.jsp</location>							<!-- 指定响应页面的位置 -->
		 * </error-page>
		 * </code>
		 */
	}

	public void messyCode() {
		/**
		 * 中文乱码问题<br/>
		 * 
		 * 出现乱码问题的场景<br/>
		 * 1. 输出响应正文时出现的中文乱码问题<br/>
		 * 2. 读取浏览器传递的参数信息时出现的中文乱码问题</br>
		 * 3. JSP引擎将JSP页面翻译成Servlet源文件时也可能导致中文乱码问题<br/>
		 * 
		 * 解决方案<br/>
		 * 场景1和2. 参考servlet.cases.MessyCodeServlet<br/>
		 * 场景3.<br/>
		 * 可以通过page指令的contentType属性说明JSP源文件的字符集编码<br/>
		 * 可以通过page指令的pageEncoding属性说明JSP源文件的字符集编码<br/>
		 * 在部署描述符中说明一组JSP源文件的字符集编码<br/>
		 * <code>
		 * <jsp-config>
		 *     <jsp-property-group>
		 *     <url-pattern>/jsp/*</url-pattern>
		 *     <page-encoding>UTF-8</page-encoding>
		 *     </jsp-property-group>
		 * </jsp-config>
		 * </code>
		 */
	}
}
